package com.ml.loan.sys.service;

import com.ml.loan.common.model.PageResult;
import com.ml.loan.sys.model.SysDict;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 字典表 服务类
 * </p>
 *
 * @author milian
 * @since 2022-08-12
 */
public interface SysDictService extends IService<SysDict> {

    /**
     * 字典类型页面数据
     * @return
     */
    PageResult dictTypes(Integer page, Integer limit , String dictName);

    /**
     * 字典数据
     * @param page
     * @param limit
     * @param pid
     * @return
     */
    PageResult<SysDict> dictDatas(Integer page, Integer limit, Integer pid, String dictDataName, String dictDataCode);

    /**
     * 删除字典类型
     * @param id
     * @return
     */
    boolean deleteDictType(Integer id);

    /**
     * 批量操作字典项
     * @param ids
     * @param state
     * @return
     */
    boolean batchHandleDictData(String ids, Integer state);

    /**
     * 清除字典缓存
     * @param dictType
     */
    void clearRedisCache(String dictType);

    /**
     * 清除字典缓存
     * @param dictDataId
     */
    void clearRedisCache(Integer dictDataId);


    /**
     * 根据字典类型，获取字典列表
     * @param dictType
     * @return
     */
    List<SysDict> getDictList(String dictType);


    /**
     * 根据字典类型和字典值获取字典名称
     * @param dictType
     * @param dictValue
     * @param defaultValue
     * @return
     */
    String getDictName(String dictType, String dictValue, String defaultValue);


    /**
     * 根据字典标签，获取字典值
     * @param dictType
     * @param dictName
     * @param defaultValue
     * @return
     */
    String getDictValue(String dictType, String dictName, String defaultValue);
}
